import random
a=random.randint(1,9)  # 随机生成一个1-9之间的数字
print(a,'\n')


# # 生成随机矩阵
import numpy as np
# numpy.random.RandomState()是一个伪随机数生成器
#　设置随机种子，保证每次生成的随机数一样，可以不设置（去除下面一行代码，将所有的 rd 替换成 np.random 即可）
rd = np.random.RandomState(888)
matrix1= rd.randint( 0,2 , (6,6) ) # 随机生成一个0-1之间的 6*6矩阵
print(matrix1)

# print('\n')

# matrix2 = np.random.randint(-2, 9, [4,4]) # 随机生成[-2,9)的整数，4x4矩阵
# print(matrix2)
# # matrix = rd.randint(-2, 3, [10, 10]) # 效果同上
#
#
#
# print('\n')
# # 随机浮点数
# matrix3 = rd.random( (3,3)) # 随机生成一个 [0,1) 的浮点数 ，3x3的矩阵
# print(matrix3)
#
#
# '''
# seed() 用于指定随机数生成时所用算法开始的整数值。
# 1.如果使用相同的seed()值，则每次生成的随即数都相同；
# 2.如果不设置这个值，则系统根据时间来自己选择这个值，此时每次生成的随机数因时间差异而不同。
# 3.设置的seed()值一直有效
# 上述例子中，seed()在循环外时，多次运行random.random()会产生一个固定顺序(seed导致)的序列；
# seed()在循环中时，每次都是重新定义一次相同的seed()（seed(3)），然后只执行一次random.random()，因此每次产生的都是固定的随机序列的首项。
# seed()被设置了之后，np,random.random()可以按顺序产生一组固定的数组，如果使用相同的seed()值，则每次生成的随机数都相同，
# 如果不设置这个值，那么每次生成的随机数不同。
# '''
# num = 0
# random.seed(3)
# while num < 5:
#     #random.seed(3)
#     print(random.random())
#     num += 1


'''数组中的维度 以2维数组举例'''
import numpy as np
# np.random.seed(0)#seed里面的值一旦写死，每次生成的矩阵中的元素都是固定的了
# arr2 = np.random.randint(0,9,size=(4,3))
# print(arr2)
'''
这个二维数组，总共有两层中括号。在剥去最外层的中括号后，是4个3维的数组：[5 0 3],[3 7 3],[5 2 4],[7 6 8]。，数组的维度看括号厚度
拿任意一个单位体举例，如[5 0 3],剥去中括号，是3个单位体5,0,3.
'''

'''以3维数组举例'''
arr3 = np.random.randint(0,9,size=(3,4,3))   # 生成3个 4x3的矩阵
print(arr3)
# print('---------axis=0----------')
# print(arr3.sum(axis=0))
print('---------axis=1----------')
print(arr3.sum(axis=1))
print('\n')
print(arr3.cumsum(axis=2))
print('---------axis=2----------')
print(arr3.sum(axis=2))
# 这个三维数组，总共有三层中括号。在剥去最外层的中括号后，是3个(4,3)的数组
# 数组剥去最外层中括号后，得到的单位体的个数表示第0个维度（axis=0）的大小，次外层就是第二个维度（axis=1）的大小，以此类推。

# import random
# for i in range(5):
#     L1 = random.randint(1, 10)
#     print(L1, end=' ')

'''random.sample(range(1,N), k)
表示从[1,N]的范围内随机生成k个数，结果以列表返回
import random
L1 = random.sample(range(1, 10), 5)
print(L1) '''